package com.iscas.tech.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iscas.tech.entity.AtScitegach;
import com.iscas.tech.vo.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 科技成果表 Mapper 接口
 *
 * @author yangyi
 * @since 2020-10-26
 */
@Repository
public interface AtScitegachMapper extends BaseMapper<AtScitegach> {
    /**
     * 获取科技成果图片列表
     *
     * @param id 科技成果ID
     * @return 科技成果图片列表
     */
    List<AtStpicQueryVo> getPicList(@Param("id") Long id);

    /**
     * @param createTitle 记录人ID
     * @return 获取记录人姓名
     */
    String getCreateName(@Param("createTitle") Integer createTitle);

    /**
     * @param publisherId 发布人ID
     * @return 获取发布人真实姓名
     */
    String getPublisherName(@Param("publisherId") Integer publisherId);

    /**
     * @param publisherId 发布人ID
     * @return 获取发布人电话
     */
    String getPublisherPhone(@Param("publisherId") Integer publisherId);

    /**
     * @param businessId 业务ID
     * @return 查询标签分类
     */
    List<AtMdbusyValueQueryVo> getTagList(@Param("businessId") Integer businessId);

    /**
     * 分页获取科技成果列表
     *
     * @param offset 偏移量
     * @param limit  数据量
     * @param audit  审核状态
     * @return 科技成果列表
     */
    List<AtScitegachQueryVo> getTechGain(@Param("offset") Long offset,
                                         @Param("limit") Integer limit,
                                         @Param("audit") Integer audit);

    /**
     * @param audit 审核状态
     * @return 科技成果总数
     */
    Long getTechGainCount(@Param("audit") Integer audit);

    /**
     * 查询科技成果详情
     *
     * @param id 科技成果ID
     * @return 科技成果详情
     */
    AtScitegachDetailQueryVo get(@Param("id") Long id);

    /**
     * 新增科技成果
     *
     * @param param 科技成果详情
     * @return 新增结果
     */
    Boolean saveTechGain(@Param("param") MdWithTechGain param);

    /**
     * @param id 科技成果ID
     * @return 删除科技成果
     */
    Boolean deleteTechGain(@Param("id") Long id);

    /**
     * @param id 科技成果主键ID
     * @return 审核科技成果
     */
    Boolean checkTechGain(@Param("id") Long id);
}
